
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class Register {

    public static void main(String[] args) {
        // 1、 编写程序，实现一个用户信息注册界面，要求包括以下内容：
        //用户名，密码，性别（用单选组件），专业选择（用下拉列表组件），
        //注册按钮，并要求编写注册按钮事件，将输入的用户名、密码、性别和专业输出。
        SwingUtilities.invokeLater(new Runnable(){
            public void run() {
                register();
            }
        });
    }
    public static void register(){
        //创建新窗口
        JFrame jf=new JFrame("用户信息注册界面");
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口时，一同结束后台程序。
        jf.setSize(500,300);
        jf.setVisible(true);//设置窗体可见
        jf.setLayout(new BorderLayout());//设置布局格式
        //新建用户名部分组件
        JLabel yhm = new JLabel("用户名：");
        final JTextField yhmtext = new JTextField(20);
        JPanel user = new JPanel();
        user.add(yhm);
        user.add(yhmtext);
        //新建用户名部分组件
        JLabel mm = new JLabel("密码：");
        final JPasswordField mmtext = new JPasswordField(20);
        JPanel pass = new JPanel();
        pass.add(mm);
        pass.add(mmtext);
        //将用户名与密码放至一个JPanel中
        JPanel start = new JPanel();
        start.setLayout(new BorderLayout());
        start.add(user,BorderLayout.PAGE_START);
        start.add(pass,BorderLayout.CENTER);
        jf.add(start,BorderLayout.PAGE_START);
        //新建性别组件(单选)
        JLabel xb = new JLabel("性别：");
        ButtonGroup group = new ButtonGroup();
        final JRadioButton rb1 = new JRadioButton("男");
        final JRadioButton rb2 = new JRadioButton("女");
        group.add(rb1);
        group.add(rb2);
        JPanel sex = new JPanel();
        sex.add(xb);
        sex.add(rb1);
        sex.add(rb2);
        //新建专业选择组件（下拉式组件）
        JLabel zy = new JLabel("专业选择：");
        final JComboBox<String> zyxz = new JComboBox<String>();
        zyxz.addItem("请选择专业");
        zyxz.addItem("虚拟现实技术");
        zyxz.addItem("网站设计与开发");
        zyxz.addItem("java程序设计");
        zyxz.addItem("web开发");
        JPanel xz = new JPanel();
        xz.add(zy);
        xz.add(zyxz);
        //将性别和专业选择放至一个JPanel中
        JPanel center = new JPanel();
        center.setLayout(new BorderLayout());
        center.add(sex,BorderLayout.PAGE_START);
        center.add(xz,BorderLayout.CENTER);
        jf.add(center,BorderLayout.CENTER);
        //新建注册按钮，并放至信息注册界面最底部
        JButton zc = new JButton("注册");
        jf.add(zc,BorderLayout.PAGE_END);
        //定义一个JDialog对话框
        final JDialog jg = new JDialog(jf,"注册结果界面",true);
        jg.setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
        jg.setSize(300, 300);
        final JTextArea cg = new JTextArea();
        jg.add(cg);
        //为注册按钮设置事件
        zc.addActionListener(new ActionListener(){

            public void actionPerformed(ActionEvent e) {
                if(zyxz.getSelectedItem().equals("请选择专业")){
                    cg.append("不好意思，注册失败！\n");
                    cg.append("专业选择不能为空！\n");
                    jg.setVisible(true);
                }else{
                    cg.append("恭喜你，注册成功！\n");
                    cg.append("用户名为："+yhmtext.getText()+"\n");
                    cg.append("密码为："+String.valueOf(mmtext.getPassword())+"\n");
                    if(rb1.isSelected()){
                        cg.append("性别为：男\n");
                    }else{
                        cg.append("性别为：女\n");
                    }
                    cg.append("专业为："+zyxz.getSelectedItem()+"\n");
                    jg.setVisible(true);
                }
                cg.setText("");
            }


        });
    }
}
